package com.zjcloud.jwgl.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zjcloud.common.annotation.Excel;
import com.zjcloud.common.core.domain.BaseEntity;

/**
 * 排课结果统计对象 ac_schedule_statistics
 * 
 * @author zjcloud
 * @date 2024-12-19
 */
public class AcScheduleStatistics extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 统计ID */
    private Long id;

    /** 任务ID */
    @Excel(name = "任务ID")
    private Long taskId;

    /** 学期 */
    @Excel(name = "学期")
    private String semester;

    /** 总课程数 */
    @Excel(name = "总课程数")
    private Integer totalCourses;

    /** 已排课程数 */
    @Excel(name = "已排课程数")
    private Integer scheduledCourses;

    /** 冲突数量 */
    @Excel(name = "冲突数量")
    private Integer conflictCount;

    /** 教师满意度 */
    @Excel(name = "教师满意度")
    private BigDecimal teacherSatisfaction;

    /** 教室利用率 */
    @Excel(name = "教室利用率")
    private BigDecimal classroomUtilization;

    /** 时间分布得分 */
    @Excel(name = "时间分布得分")
    private BigDecimal timeDistributionScore;

    /** 总体评分 */
    @Excel(name = "总体评分")
    private BigDecimal overallScore;

    /** 迭代次数 */
    @Excel(name = "迭代次数")
    private Integer generationCount;

    /** 执行时间（毫秒） */
    @Excel(name = "执行时间")
    private Long executionTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTaskId(Long taskId) 
    {
        this.taskId = taskId;
    }

    public Long getTaskId() 
    {
        return taskId;
    }
    public void setSemester(String semester) 
    {
        this.semester = semester;
    }

    public String getSemester() 
    {
        return semester;
    }
    public void setTotalCourses(Integer totalCourses) 
    {
        this.totalCourses = totalCourses;
    }

    public Integer getTotalCourses() 
    {
        return totalCourses;
    }
    public void setScheduledCourses(Integer scheduledCourses) 
    {
        this.scheduledCourses = scheduledCourses;
    }

    public Integer getScheduledCourses() 
    {
        return scheduledCourses;
    }
    public void setConflictCount(Integer conflictCount) 
    {
        this.conflictCount = conflictCount;
    }

    public Integer getConflictCount() 
    {
        return conflictCount;
    }
    public void setTeacherSatisfaction(BigDecimal teacherSatisfaction) 
    {
        this.teacherSatisfaction = teacherSatisfaction;
    }

    public BigDecimal getTeacherSatisfaction() 
    {
        return teacherSatisfaction;
    }
    public void setClassroomUtilization(BigDecimal classroomUtilization) 
    {
        this.classroomUtilization = classroomUtilization;
    }

    public BigDecimal getClassroomUtilization() 
    {
        return classroomUtilization;
    }
    public void setTimeDistributionScore(BigDecimal timeDistributionScore) 
    {
        this.timeDistributionScore = timeDistributionScore;
    }

    public BigDecimal getTimeDistributionScore() 
    {
        return timeDistributionScore;
    }
    public void setOverallScore(BigDecimal overallScore) 
    {
        this.overallScore = overallScore;
    }

    public BigDecimal getOverallScore() 
    {
        return overallScore;
    }
    public void setGenerationCount(Integer generationCount) 
    {
        this.generationCount = generationCount;
    }

    public Integer getGenerationCount() 
    {
        return generationCount;
    }
    public void setExecutionTime(Long executionTime) 
    {
        this.executionTime = executionTime;
    }

    public Long getExecutionTime() 
    {
        return executionTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskId", getTaskId())
            .append("semester", getSemester())
            .append("totalCourses", getTotalCourses())
            .append("scheduledCourses", getScheduledCourses())
            .append("conflictCount", getConflictCount())
            .append("teacherSatisfaction", getTeacherSatisfaction())
            .append("classroomUtilization", getClassroomUtilization())
            .append("timeDistributionScore", getTimeDistributionScore())
            .append("overallScore", getOverallScore())
            .append("generationCount", getGenerationCount())
            .append("executionTime", getExecutionTime())
            .append("createTime", getCreateTime())
            .toString();
    }
}